package com.zhenlonghu.controller_test.service;

import com.zhenlonghu.controller_test.model.User;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;

/**
 * 用户服务实现类，包含具体业务逻辑
 * - @Service：标注为服务层组件，被 Spring 管理
 */
@Service
public class UserServiceImpl implements UserService {
    // 模拟数据库存储用户列表
    private final List<User> users = new ArrayList<>();
    // 原子类生成自增ID
    private final AtomicLong nextId = new AtomicLong(1);

    @Override
    public List<User> getAllUsers() {
        return users; // 返回所有用户
    }

    @Override
    public User getUserById(Long id) {
        // 从列表中查询指定ID的用户
        return users.stream()
                   .filter(user -> user.getId().equals(id))
                   .findFirst()
                   .orElse(null);
    }

    @Override
    public User saveUser(User user) {
        if (user.getId() == null) {
            // 新用户：生成ID
            user.setId(nextId.getAndIncrement());
        } else {
            // 老用户：先删除旧数据
            users.removeIf(u -> u.getId().equals(user.getId()));
        }
        users.add(user); // 保存用户
        return user;
    }
}